package com.siwei.mes.mapper.syncTc;

import com.siwei.mes.common.base.BaseMapper;
import com.siwei.mes.entity.sync.tc.Waybill;
import org.apache.ibatis.annotations.Param;

import java.math.BigDecimal;
import java.util.List;

/**
 * 砼材-运单(Waybill)表数据库访问层
 *
 * @author linzi
 * @since 2024-05-22 21:08:28
 */
public interface WaybillMapper extends BaseMapper<Waybill> {
    /**
     * 获取所有
     *
     * @param entity
     * @return
     */
    List<Waybill> getList(Waybill entity);

    /**
     * 获取所有
     *
     * @param entity
     * @return
     */
    List<Waybill> bindList(Waybill entity);

    /**
     * 根据id获取
     *
     * @param id
     * @return
     */
    Waybill loadById(@Param("id") Long id);

    /**
     * 根据运单id查询
     *
     * @param cid
     * @return
     */
    Waybill selectByWid(@Param("waybillId") Long cid);

    /**
     * 根据供货任务单ID获取所有运单
     *
     * @param supplyTaskIds
     * @return
     */
    List<Waybill> selectBySupplyTaskId(@Param("supplyTaskIds") List<Long> supplyTaskIds);

    /**
     * 获取最大的运单id
     *
     * @return
     */
    long getMaxWaybillId();

    BigDecimal selectSignQuantityBySupplyTaskId(@Param("supplyTaskId") Long supplyTaskId);

    /**
     * 根据运单code查询运单
     *
     * @param waybillCode 运单code
     * @return
     */
    Waybill selectByWaybillCode(@Param("waybillCode") Long waybillCode);

    /**
     * 修改已生成的批检数量
     *
     * @param waybillId    运单id
     * @param behalfNumber 代表数量
     */
    void updateGenBatchQuantity(@Param("waybillId") Long waybillId, @Param("behalfNumber") double behalfNumber);

    /**
     * 修改已生成的快检数量
     *
     * @param waybillId    运单id
     * @param behalfNumber 代表数量
     */
    void updateGenQuickQuantity(@Param("waybillId") Long waybillId, @Param("behalfNumber") double behalfNumber);
}
